package com.irdstudio.efp.console.service.dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.irdstudio.efp.console.service.domain.CoeffCfgApp;
import com.irdstudio.efp.console.service.vo.CoeffCfgAppVO;

/**
 * <p>
 * 提额系数调整申请表的DAO类
 * </p>
 * @author szbd
 * @createDate 2018-09-17 15:10:24
 */
public interface CoeffCfgAppDao {
    
    /**
     * 插入提额系数调整申请表记录
     * @param coeffCfgApp
     * @return
     */
    public int insertCoeffCfgApp(CoeffCfgApp coeffCfgApp);
    
    /**
     * 根据主键删除提额系数调整申请表记录
     * @param coeffCfgApp
     * @return
     */
    public int deleteCoeffCfgAppByPk(CoeffCfgApp coeffCfgApp);
    
    /**
     * 根据主键更新提额系数调整申请表记录
     * @param coeffCfgApp
     * @return
     */
    public int updateCoeffCfgAppByPk(CoeffCfgApp coeffCfgApp);
    
    /**
     * 根据主键查询提额系数调整申请表记录
     * @param coeffCfgApp
     * @return
     */
    public List<CoeffCfgApp> queryCoeffCfgAppByPk(CoeffCfgApp coeffCfgApp);
    
    /**
     * 条件查询单笔提额系数调整申请表记录
     * @param coeffCfgApp
     * @return
     */
    public CoeffCfgApp querySingleCoeffCfgAppByCondition(CoeffCfgApp coeffCfgApp);
    
    /**
     * 查询提额系数调整申请表记录
     * @param coeffCfgApp
     * @return
     */
    public List<CoeffCfgApp> queryCoeffCfgAppByCondition(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 条件分页查询提额系数调整申请表记录
     * @param coeffCfgApp
     * @return
     */
    public List<CoeffCfgApp> queryCoeffCfgAppByConditionByPage(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 查询本人所属的记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgApp> queryAllOwnerByPage(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 查询本机构的记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgApp> queryAllCurrOrgByPage(CoeffCfgAppVO coeffCfgAppVo);
    
    /**
     * 查询本机构及下属机构的记录
     * @param coeffCfgAppVo
     * @return
     */
    public List<CoeffCfgApp> queryAllCurrDownOrgByPage(CoeffCfgAppVO coeffCfgAppVo);
    
    
    public List<CoeffCfgApp> queryCoeffCfgAppByLegalOrgCode(@Param("leagalOrgCode")String leagalOrgCode);
    
    /**
     * 批量新增系数调整申请记录
     * @param listIn
     * @return
     */
    public int insertCoeffCfgAppList(@Param("coeffCfgAppVOs")List<CoeffCfgAppVO> coeffCfgAppVOs);
    
    /**
     * 查询该注册单位类型是否存在"审批中"的记录
     * @param coeffCfgAppVO
     * @return
     */
    public List<CoeffCfgApp> queryCoeffCfgAppByTypeId(CoeffCfgAppVO coeffCfgAppVO);
}